package cn.edu.wynu.apis.time;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

public class LocalTimeLearn {
    public static void main(String[] args) {
        LocalDate localDate = LocalDate.now();
        System.out.println("当前日期:%s".formatted(localDate));

        LocalTime localTime = LocalTime.now();
        System.out.println("当前时间:%s".formatted(localTime));

        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println("当前日期和时间:%s".formatted(localDateTime));

        // 如果需要对时间格式化打印时间,可以使用 DateTimeFormatter
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss.SSS");
        // y:年  M:月 d:日 h:时(12小时制) H:时(24小时制) m:分 s:秒 S:毫秒
        String time = formatter.format(LocalDateTime.now());
        System.out.println(time);


        // 将字符串时间转换为时间对象: 非iso格式,需要指定格式化器
        String timeString = "2025年10月30日 21:01:06.875";
        LocalDateTime parseTime = LocalDateTime.parse(timeString, formatter);
        System.out.println(parseTime);

        // 将字符串时间转换为时间对象: iso格式,无需指定格式化器
        String timeStringIso = "2025-10-30T21:04:43.853117700";
        LocalDateTime parse = LocalDateTime.parse(timeStringIso);
        System.out.println(parse);

        // 日期格式化
        DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
        String date = dateFormatter.format(LocalDate.now());
        System.out.println(date);
        // 时间格式化
        DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss.SSS");
        String timeOnly = timeFormatter.format(LocalTime.now());
        System.out.println(timeOnly);
    }
}
